

#ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_MYCIRCLE_MYCIRCLE_PAINT_PROPERTY_H
#define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_MYCIRCLE_MYCIRCLE_PAINT_PROPERTY_H

#include "core/components/common/layout/constants.h"
#include "core/components/common/properties/color.h"
#include "core/components_ng/render/paint_property.h"

namespace OHOS::Ace::NG {
// PaintProperty are used to set render properties.
class MyCirclePaintProperty : public PaintProperty {
    DECLARE_ACE_TYPE(MyCirclePaintProperty, PaintProperty)
public:
    MyCirclePaintProperty() = default;
    ~MyCirclePaintProperty() override = default;
    RefPtr<PaintProperty> Clone() const override
    {
        auto value = MakeRefPtr<MyCirclePaintProperty>();
        value->PaintProperty::UpdatePaintProperty(DynamicCast<PaintProperty>(this));
        value->propEdgeColor_ = CloneEdgeColor();
        return value;
    }

    void Reset() override
    {
        PaintProperty::Reset();
        ResetEdgeColor();
    }

    ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(EdgeColor, Color, PROPERTY_UPDATE_RENDER);
    ACE_DISALLOW_COPY_AND_MOVE(MyCirclePaintProperty);
};
} // namespace OHOS::Ace::NG
#endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_MYCIRCLE_MYCIRCLE_PAINT_PROPERTY_H
